﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Eacademy.Domain.Models;

namespace Eacademy.Domain.Abstractions
{
    public interface IStudentRepository
    {
        AdminStudentsViewModel GetStudentByUserId(int id);
        List<StudentCompactViewModel> GetStudents(int pageIndex, int pageSize, StudentFilterViewModel parameters, out int totalCount, bool count = true);

        List<StudentCompactViewModel> GetStudentsBySubjectAndUserId(int pageIndex, int pageSize, int subjectId,
                                                                    int userId, bool status,
                                                                    StudentFilterViewModel parameters,
                                                                    out int totalCount, bool count = true);
        AdminStudentsViewModel GetStudentByStudentId(int id);
        User AddStudent(AdminStudentsViewModel adminStudentsViewModel);
        User UpdateStudent(AdminStudentsViewModel studentsViewModel);
        Boolean DeleteStudent(int id);
        Boolean AcceptStudent(int id, int subjectid, int mentorUserId);
        AdminStudentsViewModel EditStudent(int id);
    }
}